defAdmCmd(new AbstractAdmCmdImpl("help"){
	execute:function(cmdLine,ctx){
		var cmdName = cmdLine.nextToken();
        if (cmdName == null) {
            var sb = new StringBuilder();
            var i = 0;
            for each (var cmd in admCmds.keySet()) {
                sb.append(cmd).append("  ");
                i++;
                if (i % 4 == 0) {
                    sb.append("\r\n");
                }
            }
            sb.append("\r\n");
            ctx.writeAndFlush(sb.toString());
        } else {
            var admCmd = findAdmCmd(cmdName);
            if (admCmd == null) {
                ctx.writeAndFlush("can't find cmd\r\n");
                return;
            }
            ctx.writeAndFlush(admCmd.usage() + "\r\n");
        }
	}
});